通过使用Spring Boot+Spring MVC + Mybatis 整合实现一个对数据库中的users表的CRUD的操作。
1、创建项目
1.1、修改POM文件
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 
 | <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.2.6.RELEASE</version>
 <relativePath/>
 </parent>
 <groupId>com.xiezhenyu</groupId>
 <artifactId>springbootmybatis2</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <name>springbootmybatis2</name>
 <description>Demo project for Spring Boot</description>
 <properties>
 <java.version>1.8</java.version>
 </properties>
 <dependencies>
 
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
 </dependency>
 
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 
 <dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>2.1.2</version>
 </dependency>
 
 <dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>druid</artifactId>
 <version>1.1.12</version>
 </dependency>
 
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>8.0.18</version>
 </dependency>
 
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 <scope>test</scope>
 <exclusions>
 <exclusion>
 <groupId>org.junit.vintage</groupId>
 <artifactId>junit-vintage-engine</artifactId>
 </exclusion>
 </exclusions>
 </dependency>
 </dependencies>
 
 <build>
 <plugins>
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
 </plugins>
 <resources>
 <resource>
 <directory>src/main/java</directory>
 <includes>
 <include>**/*.xml</include>
 <include>**/*.properties</include>
 </includes>
 <filtering>true</filtering>
 </resource>
 </resources>
 </build>
 </project>
 
 | 
1.2、添加application.properties全部配置文件
| 12
 3
 4
 5
 6
 
 | spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/test?userUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=Asia/Shanghai
 spring.datasource.username=root
 spring.datasource.password=p123456
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
 mybatis.type-aliases-package=com.xiezhenyu.springbootmybatis2.pojo
 
 | 
1.3、数据库表设计

2、添加用户
2.1、创建实体类
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | package com.xiezhenyu.springbootmybatis2.pojo;
 public class Users {
 private Integer userid;
 private String username;
 private String usersex;
 public Integer getUserid() {
 return userid;
 }
 public void setUserid(Integer userid) {
 this.userid = userid;
 }
 public String getUsername() {
 return username;
 }
 public void setUsername(String username) {
 this.username = username;
 }
 public String getUsersex() {
 return usersex;
 }
 public void setUsersex(String usersex) {
 this.usersex = usersex;
 }
 }
 
 | 
2.2、创建mapper接口以及映射配置文件
mapper接口
| 12
 3
 
 | public interface UsersMapper {void insertUser(Users users);
 }
 
 | 
映射配置文件
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xiezhenyu.springbootmybatis2.mapper.UsersMapper">
 <insert id="inserUser" parameterType="users">
 insert into users(username,usersex) values(#{username},#{usersex})
 </insert>
 </mapper>
 
 | 
2.3、创建业务层
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | public class UsersServiceImpl implements UsersService {@Autowired
 private UsersMapper usersMapper;
 
 @Override
 public void addUser(Users users) {
 this.usersMapper.insertUser(users);
 }
 }
 
 | 
2.4、创建Controller
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | @Controller@RequestMapping("/users")
 public class UsersController {
 @Autowired
 private UsersService usersService;
 
 
 
 @RequestMapping("/{page}")
 public String showPage(@PathVariable String page){
 return page;
 }
 
 
 
 @PostMapping("/addUser")
 public String addUser(Users users){
 this.addUser(users);
 return "ok";
 }
 }
 
 | 
2.5、编写页面
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
 <html xmlns:th="http://www.thymeleaf.org">
 <head>
 <link rel="shortcut icon" href="../resource/favicon.ico" th:href="@{/static/favicon.ico}"/>
 <title>Title</title>
 </head>
 <body>
 <form th:action="@{/users/addUser}" method="post">
 <input type="text" name="username"/><br/>
 <input type="text" name="usersex"/><br/>
 <input type="submit" value="ok"/>
 </form>
 </body>
 </html>
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <title>Title</title>
 </head>
 <body>
 <span>操作成功!</span>
 </body>
 </html>
 
 | 
2.6、启动类
| 12
 3
 4
 5
 6
 7
 
 | @SpringBootApplication@MapperScan("com.xiezhenyu.mapper")
 public class Springbootmybatis2Application {
 public static void main(String[] args) {
 SpringApplication.run(Spirngbootmybatis2Application.class, args);
 }
 }
 
 | 
3、查询用户
3.1、创建mapper及映射配置文件
| 12
 3
 4
 
 | public interface UsersMapper {void insertUser(Users users);
 List<Users> selectUsersAll();
 }
 
 | 
| 12
 3
 
 | <select id="selectUsersAll" resultType="users">select * from users
 </select>
 
 | 
3.2、在业务层中添加查询方法
| 12
 3
 4
 
 | @Overridepublic List<Users> findUserAll() {
 return this.usersMapper.selectUsersAll();
 }
 
 | 
3.3、在Controller中添加方法
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | 
 
 @RequestMapping("/findUserAll")
 public String findUser(Model model){
 List<Users> list = this.usersService.findUserAll();
 model.addAttribute("list",list);
 return "showUser";
 }
 
 | 
3.4、编写页面
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 
 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
 <html xmlns:th="http://www.thymeleaf.org">
 <head>
 <title>Title</title>
 </head>
 <body>
 <table border="1" width="50%" align="center">
 <tr>
 <th>ID</th>
 <th>用户名</th>
 <th>性别</th>
 <th>操作</th>
 </tr>
 <tr th:each="u : ${list}">
 <td th:text="${u.userid}"></td>
 <td th:text="${u.username}"></td>
 <td th:text="${u.usersex}"></td>
 <td>
 <a th:href="@{/user/preUpdateUser(id=${u.userid})}">修改</a>
 <a th:href="@{/user/deleteUser(id=${u.userid})}">删除</a>
 </td>
 </tr>
 </table>
 </body>
 </html>
 
 | 
4、用户预更新
4.1、创建mapper及映射配置文件
| 12
 3
 4
 5
 
 | public interface UsersMapper {void insertUser(Users users);
 List<Users> selectUsersAll();
 Users selectUserById(Integer id);
 }
 
 | 
| 12
 3
 
 | <select id="selectUserById" parameterType="Integer" resultType="users">select * from users where userid = #{userid}
 </select>
 
 | 
4.2、在业务层中添加查询方法
| 12
 3
 4
 
 | @Overridepublic Users findUserById(Integer id) {
 return this.usersMapper.selectUserById(id);
 }
 
 | 
4.3、在Controller中添加方法
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | 
 
 @RequestMapping("/preUpdateUser")
 public String findUserById(Integer id,Model model){
 Users user = this.usersService.findUserById(id);
 model.addAttribute("user",user);
 return "updateUser";
 }
 
 | 
4.4、编写页面
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
 <html xmlns:th="http://www.thymeleaf.org">
 <head>
 <title>Title</title>
 </head>
 <body>
 <form th:action="@{/user/updateUser}" method="post">
 <input type="hidden" name="userid" th:value="${user.userid}"/>
 <input type="text" name="username" th:value="${user.username}"/><br/>
 <input type="text" name="usersex" th:value="${user.usersex}"/><br/>
 <input type="submit" value="修改"/>
 </form>
 </body>
 </html>
 
 | 
5、用户修改
5.1、创建mapper及映射配置文件
| 12
 3
 4
 5
 6
 
 | public interface UsersMapper {void insertUser(Users users);
 List<Users> selectUsersAll();
 Users selectUserById(Integer id);
 void updateUser(Users users);
 }
 
 | 
| 12
 3
 
 | <update id="updateUser" parameterType="users">update users set username=#{username},usersex=#{usersex} where userid = #{userid}
 </update>
 
 | 
5.2、在业务层中添加查询方法
| 12
 3
 4
 
 | @Overridepublic void updateUser(Users users) {
 this.usersMapper.updateUser(users);
 }
 
 | 
5.3、在Controller中添加方法
| 12
 3
 4
 5
 6
 7
 8
 
 | 
 
 @RequestMapping("updateUser")
 public String updateUser(Users users){
 this.usersService.updateUser(users);
 return "ok";
 }
 
 | 
6、用户删除
6.1、创建mapper及映射配置文件
| 12
 3
 4
 5
 6
 7
 
 | public interface UsersMapper {void insertUser(Users users);
 List<Users> selectUsersAll();
 Users selectUserById(Integer id);
 void updateUser(Users users);
 void deleteUserById(Integer id);
 }
 
 | 
| 12
 3
 
 | <delete id="deleteUserById" parameterType="Integer">delete from users where userid = #{userid}
 </delete>
 
 | 
6.2、在业务层中添加查询方法
| 12
 3
 4
 
 | @Overridepublic void deleteUserById(Integer id) {
 this.usersMapper.deleteUserById(id);
 }
 
 | 
6.3、在Controller中添加方法
| 12
 3
 4
 5
 6
 7
 8
 
 | 
 
 @RequestMapping("deleteUser")
 public String deleteUserById(Integer id){
 this.usersService.deleteUserById(id);
 return "ok";
 }
 
 |